package com.lagou.task16;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;

public class FileTest {
    //自定义目录下所有方法的打印
    public static void showDir(String path){
        File f1 = new File(path);
        File[] f2 = f1.listFiles();
        for (File f:f2) {
            if (f.isFile()){
                System.out.println(f.getName());
            }else {
                System.out.println("["+f.getName()+"]");
                showDir(path+"/"+f.getName());
            }
        }

    }
    public static void main(String[] args) throws IOException {
//        1.构造file类型的对象与a.txt文件关联
        File f1 = new File("./","a.txt");

//        2.若文件存在则获取文件的相关信息并打印后删除文件
        if (f1.exists()){
            System.out.println("文件名称：" + f1.getName());
            System.out.println("文件大小：" + f1.length());
            Date d1 = new Date(f1.lastModified());
            SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
            String d2 = sdf.format(d1);
            System.out.println("文件最后一次修改时间：" + d2);

            System.out.println("文件的绝对路径：" + f1.getAbsolutePath());
            System.out.println(f1.delete()?"文件删除成功":"文件删除失败");
        }else{
//        3.若文件不存在则创建新的空文件
            System.out.println(f1.createNewFile()?"文件创建成功":"文件创建失败");
        }

        System.out.println("--------------------------------------------------");
        File f2 = new File("测试/test/test1/test2/test3");
        if (f2.exists()){
//            if (f2.isDirectory() && f2.length() ==  0){
                System.out.println(f2.delete()?"目录删除成功":"目录删除失败");
//            }
        }else {
            System.out.println(f2.mkdirs()?"目录创建成功":"目录创建失败");
        }

        System.out.println("--------------------------------------------------");
        File f3 = new File("./");
        File[] arr = f3.listFiles();
        for (int i = 0; i < arr.length; i++) {
            String name = arr[i].getName();
            if (arr[i].isFile()){
                System.out.println(name);
            }
            if (arr[i].isDirectory()){
                System.out.println("[" + name + "]");
            }
        }

        System.out.println("--------------------------------------------------");
//        FileFilter ff =  new FileFilter() {
//            @Override
//            public boolean accept(File pathname) {
//                return pathname.getName().endsWith(".iml");
//            }
//        };
        FileFilter ff = (pathname)->{
            return pathname.getName().endsWith(".iml");
        };
        File f4 = new File("./");
        File[] arr1 = f4.listFiles(ff);
        for (int i = 0; i < arr1.length; i++) {
            String name = arr1[i].getName();
            if (arr1[i].isFile()){
                System.out.println(name);
            }
            if (arr1[i].isDirectory()){
                System.out.println("[" + name + "]");
            }
        }

        System.out.println("打印所有文件--------------------------------");
        showDir("/Users/mac/IdeaProjects/javase/测试");
    }
}
